10 REM ********** M A C ********** 12 REM MONTHLY APPOINTMENT CALENDAR 14 REM BY D. SCOTT, 2/89, PUBLIC DOMAIN 16 REM BASED ON CALENDAR PROGRAM BY 18 REM JOHN GORDON AND IAN MCLEAN 20 REM FROM 100 PROGRAMS FOR THE 22 REM COMMODORE 64 100 DIM C(7,6):DIM N$(19) 102 RESTORE 104 POKE53280,15:POKE53281,2:POKE646,15:POKE53272,21 106 PRINT"[147]  M A C [146][155] 108 [153]" (null)USRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSR(null) " 110 [153]" SGN WAIT+ " 112 [153]" SGN CLOSE CLOSECLOSEMONTHLY APPOINTMENT WAIT+ " 114 [153]" SGN C A L E N D A R WAIT+ " 116 [153]" SGN WAIT+ " 118 [153]" (null)ANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDANDSQR " 120 [153]"SYS (1)LIST JAN SYS(4) LISTAPR SYS(7) LISTJUL SYS(A) LISTOCT "; 122 [153]"SYS (2)LIST FEB SYS(5) LISTMAY SYS(8) LISTAUG SYS(B) LISTNOV "; 124 [153]"SYS (3)LIST MAR SYS(6) LISTJUN SYS(9) LISTSEP SYS(C) LISTDEC "; 126 [153]"SYS ^ ^ ^ ^ "; 128 [153]" -LENLENLENLENLENLENLENLEN>LENLENLENLENLENLENLENLEN>LENLENLENLENLENLENLENLEN>LENLENLENLENLEN^ "; 130 [153]" (null) ENTER TO SELECT MONTH (null) "; 132 [153]" /LENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENEXP "; 134 [161]KEY$:[139]KEY$[178]""[167]134 136 [139]KEY$[178]"1"[167]M$[178]"JANUARY":[137]162 138 [139]KEY$[178]"2"[167]M$[178]"FEBRUARY":[137]162 140 [139]KEY$[178]"3"[167]M$[178]"MARCH":[137]162 142 [139]KEY$[178]"4"[167]M$[178]"APRIL":[137]162 144 [139]KEY$[178]"5"[167]M$[178]"MAY":[137]162 146 [139]KEY$[178]"6"[167]M$[178]"JUNE":[137]162 148 [139]KEY$[178]"7"[167]M$[178]"JULY":[137]162 150 [139]KEY$[178]"8"[167]M$[178]"AUGUST":[137]162 152 [139]KEY$[178]"9"[167]M$[178]"SEPTEMBER":[137]162 154 [139]KEY$[178]"A"[167]M$[178]"OCTOBER":[137]162 156 [139]KEY$[178]"B"[167]M$[178]"NOVEMBER":[137]162 158 [139]KEY$[178]"C"[167]M$[178]"DECEMBER":[137]162 160 [141]850:[137]134 162 [153]"LIST MONTH SELECTED IS....SYS";M$ 164 [133]"LIST ENTER ENTIRE YEAR..SYS";Y 166 [153]" CALCULATING - PLEASE WAIT "; 168 D$[178]" SUN MON TUE WED THU FRI SAT" 200 [143] *** CALENDAR CALCULATIONS 202 [143] *** GET NUMBER OF DAYS IN MONTH 204 M[178]0 206 [135]Q$,F,D 208 M[178]M[170]1 210 [139]M[178]13[167] [153]"INVALID MONTH":[137]102 212 [139][200](M$,3)[179][177][200](Q$,3)[167][137]206 214 [139]Y[177]1900[167]Y[178]Y[171]1900 216 L[178][181](Y[173]4) 218 OF[178]Y[170]L 222 [139]Y[171][181](Y[173]4)[172]4[178]0[175]M[179]3[167]OF[178]OF[171]1 224 [139]Y[171][181](Y[173]4)[172]4[178]0[175]M[178]2[167]D[178]29 226 OF[178]OF[171][181](OF[173]7)[172]7 228 F[178]F[170]OF 230 F[178]F[171][181](F[173]7)[172]7 232 [139]F[178]0[167]F[178]7 234 [129]I[178]1[164]F[171]1 236 C(I,1)[178]0 238 [130]I 240 DY[178]1 242 [129]I[178]F[164]7 244 C(I,1)[178]DY 246 DY[178]DY[170]1 248 [130]I 250 [129]J[178]2[164]6 252 [129]I[178]1[164]7 254 C(I,J)[178]DY 256 DY[178]DY[170]1 258 [139]DY[177]D[167]I[178]7:J[178]6 260 [130]I 262 [130]J 264 [137]300 280 [143] ERROR ROUTINE 285 [153]"LOAD "E$:[141]850:[141]850:[141]850:[141]850:[141]800 290 [160]15:[160]2 300 [143]*****SCREEN PRINT OUT***** 302 [151]53280,15:[151]53281,2:[151]646,15 304 [153]"LOAD(null)USRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSR(null)WAIT"; 306 [153]"SGN WAIT M A I N M E N U WAITLIST +WAIT"; 308 [153]"SGN +WAIT"; 310 [153]"SGN A = ANOTHER MONTH M = MEMO OPTION +WAIT"; 312 [153]"SGN P = PRINT OPTION Q = QUIT +WAIT"; 314 [153]"SGN +WAIT"; 316 [153]"SGN PRESS KEY FOR SELECTION +WAIT"; 318 [139]Y[179]1800[167][153]"";M$;" ";Y[170]1900;"SYS" 320 [139]Y[177][178]1800[167][153]"";M$;" ";Y;"SYS" 322 [153]D$ 324 [153]" ORLENLENLENLEN=LENLENLENLEN=LENLENLENLEN=LENLENLENLEN=LENLENLENLEN=LENLENLENLEN=LENLENLENLEN^ "; 326 [129]J[178]1[164]6 328 [129]I[178]1[164]7 330 C$[178][196](C(I,J)):[139][195](C$)[178]2[167]C$[178]" "[170]C$ 332 [139]C(I,J)[178]0[167][153]"(null) ";" "; 334 [139]C(I,J)[179][177]0[167][153]"(null)"C$;" "; 336 [139]I[178]7[167][153]"(null)"; 338 [130]I 340 [153]"" 342 [139]J[177]0[167][153]" "; 344 [139]J[178]6[167]350 346 [153]"ON -LENLENLENLEN(null)LENLENLENLEN(null)LENLENLENLEN(null)LENLENLENLEN(null)LENLENLENLEN(null)LENLENLENLEN(null)LENLENLENLEN< "; 348 [130] J 350 [153]"ON /LENLENLENLEN>LENLENLENLEN>LENLENLENLEN>LENLENLENLEN>LENLENLENLEN>LENLENLENLEN>LENLENLENLENEXP "; 352 [161]KEY$:[139]KEY$[178]""[167]352 354 [139]KEY$[178]"A"[167]P$[178]"MAC":[153]"":[137]900 356 [139]KEY$[178]"M"[167]364 358 [139]KEY$[178]"P"[167]600 360 [139]KEY$[178]"Q"[167][144]:P$[178]" ":[137]900 361 [143] TO LOAD ANOTHER FILE ON EXIT, ENTER THAT NAME AS P$ IN LINE 360. 362 [141]800:[137]352 364 [153]"LOAD ORLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLEN^" 366 [153]" (null) WAIT(null)" 368 [153]" (null) M E M O O P T I O N S WAIT(null)" 370 [153]" (null) WAIT(null)" 372 [153]" (null) W = WRITE NEW MEMOS WAIT(null)" 374 [153]" (null) V = VIEW/EDIT CURRENT MEMOS WAIT(null)" 376 [153]" (null) E = ESCAPE TO MENU WAIT(null)" 378 [153]" (null) ^ WAIT(null)" 380 [153]" (null) /LEN ENTER LETTER FOR CHOICE WAIT(null)" 384 [153]" (null) WAIT(null)" 386 [153]" /LENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENEXP" 388 [161]KEY$:[139]KEY$[178]""[167]388 390 [139]KEY$[178]"W"[167]450 392 [139]KEY$[178]"V"[167]400 394 [139]KEY$[178]"E"[167]300 396 [141]800:[137]388 400 [143] ***** VIEW MEMOS ***** 401 [159]15,8,15:[159]2,8,2,"MEMOS"[170]M$[170]",S,R" 402 [132]15,E,E$,E1,E2 404 [139]E[167]280 405 [129]L[178]0[164]19 406 [132]2,N$(L) 408 [130]L 410 [160]2 412 [153]"LOAD  MEMOS FOR ";M$"LIST" 414 [129]L[178]0[164]19 416 [153]" "N$(L) 418 [130]L 420 [153]" PRESS RETURN FOR CALENDAR" 422 [153]" PRESS LETTER (E) FOR EDIT" 424 [161]KEY$:[139]KEY$[178]""[167]424 426 [139]KEY$[178][199](13)[167][160]15:[160]2:[137]300 428 [139]KEY$[178]"E"[167]432 430 [137]424 432 [153]"ONONONONONONONONONONONONONONONONONONONONONONONONONONON"; 434 [153]" ORLENLENLENLEN ENTER NEW MEMO INFORMATION LENLENLENLEN^ WAIT"; 436 [137]456 450 [143] ***** WRITE MEMOS ***** 452 [153]"LOAD ORLENLENLENLENLENLEN ENTER MEMO INFORMATION LENLENLENLENLENLEN^ WAIT"; 454 [153]" (null) (null) WAIT"; 456 [133]"";N$(0):[139]N$(0)[178]""[167]N$(0)[178]"-" 458 [133]"";N$(1):[139]N$(1)[178]""[167]N$(1)[178]"-" 460 [133]"";N$(2):[139]N$(2)[178]""[167]N$(2)[178]"-" 462 [133]"";N$(3):[139]N$(3)[178]""[167]N$(3)[178]"-" 464 [133]"";N$(4):[139]N$(4)[178]""[167]N$(4)[178]"-" 468 [133]"";N$(5):[139]N$(5)[178]""[167]N$(5)[178]"-" 470 [133]"";N$(6):[139]N$(6)[178]""[167]N$(6)[178]"-" 472 [133]"";N$(7):[139]N$(7)[178]""[167]N$(7)[178]"-" 474 [133]"";N$(8):[139]N$(8)[178]""[167]N$(8)[178]"-" 476 [133]"";N$(9):[139]N$(9)[178]""[167]N$(9)[178]"-" 478 [133]"";N$(10):[139]N$(10)[178]""[167]N$(10)[178]"-" 480 [133]"";N$(11):[139]N$(11)[178]""[167]N$(11)[178]"-" 482 [133]"";N$(12):[139]N$(12)[178]""[167]N$(12)[178]"-" 484 [133]"";N$(13):[139]N$(13)[178]""[167]N$(13)[178]"-" 486 [133]"";N$(14):[139]N$(14)[178]""[167]N$(14)[178]"-" 488 [133]"";N$(15):[139]N$(15)[178]""[167]N$(15)[178]"-" 490 [133]"";N$(16):[139]N$(16)[178]""[167]N$(16)[178]"-" 492 [133]"";N$(17):[139]N$(17)[178]""[167]N$(17)[178]"-" 494 [133]"";N$(18):[139]N$(18)[178]""[167]N$(18)[178]"-" 496 [133]"";N$(19):[139]N$(19)[178]""[167]N$(19)[178]"-" 498 [153]" IS THIS CORRECT (Y/N)? 500 GETKEY$:IFKEY$=""THEN500 502 IFKEY$="Y"THEN550 504 IFKEY$="N"THEN508 506 GOTO500 508 PRINT"[145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]"; 510 PRINT" [176][195][195][195][195][195] REENTER MEMO INFORMATION [195][195][195][195][195][174] [158][146]"; 512 GOTO456 550 REM *****SAVE MONTHLY MEMOS***** 552 PRINT"[145]  SAVING MEMO INFORMATION [146][155]" 554 OPEN2,8,2,"@:MEMOS"+M$+",S,W" 556 FORL=0TO19 558 PRINT#2,N$(L) 560 NEXTL 562 CLOSE2:CLOSE15 564 PRINT" PRESS RETURN FOR CALENDAR " 566 GETKEY$:IFKEY$=""THEN568 568 FORR=1TO100:NEXTR 570 PRINT"[145]  PRESS RETURN FOR CALENDAR [146][155]" 572 IFKEY$=CHR$(13)THEN300 574 GETKEY$:IFKEY$=""THEN576 576 FORR=1TO100:NEXTR 578 PRINT"[145] PRESS RETURN FOR CALENDAR " 580 IFKEY$=CHR$(13)THEN300 582 GOTO566 600 REM ***** PRINT OPTIONS 602 POKE53281,6:GOSUB800:GOSUB800 604 PRINT"[147] [155][176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]" 606 PRINT" [221][158] [146][155][221]" 608 PRINT" [221][158] PRINTER MUST BE ONLINE [146][155][221]" 610 PRINT" [221][158] [146][155][221]" 612 PRINT" [221][159] [146][155][221]" 614 PRINT" [221][159] P = PRINT CALENDAR & MEMOS [146][155][221]" 616 PRINT" [221][159] [146][155][221]" 618 PRINT" [221][159] E = ESCAPE TO MENU [146][155][221]" 620 PRINT" [221][159] ^ [146][155][221]" 622 PRINT" [221][159] [221] [146][155][221]" 624 PRINT" [221][159] ENTER LETTER FOR CHOICE [146][155][221]" 626 PRINT" [221][159] [146][155][221]" 628 PRINT" [155][173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]" 630 GETKEY$:IFKEY$=""THEN630 632 IFKEY$="E"THEN300 634 IFKEY$="P"THENGOSUB950:GOTO638 636 GOTO630 638 PRINT"[147]":OPEN4,4:CMD4 640 IFY<1800THENY=Y+1900 642 PRINT#4,CHR$(14) 644 PRINT#4,M$;" ";Y 646 PRINT#4,CHR$(15) 648 PRINT#4:PRINT#4:PRINT#4," SUNDAY MONDAY TUESDAY WEDNESDAY"; 650 PRINT#4, " THURSDAY FRIDAY SATURDAY " 651 PRINT#4,"[213][195][195][195][195][195][195][195][195][195][195][178][195][195][195][195][195][195][195][195][195][195][178][195][195][195][195][195][195][195][195][195][195][178][195][195][195][195][195][195][195][195][195][195][178]"; 652 PRINT#4,"[195][195][195][195][195][195][195][195][195][195][178][195][195][195][195][195][195][195][195][195][195][178][195][195][195][195][195][195][195][195][195][195][201]" 654 FORJ=1TO6 656 FORI=1TO7 658 C$=STR$(C(I,J)):IFLEN(C$)=2THENC$=" "+C$ 660 IFC(I,J)=0THENPRINT#4,"[221] ";" "; 662 IFC(I,J)<>0THENPRINT#4,"[221] "C$;" "; 664 IFI=7THENPRINT#4,"[221]" 666 NEXTI 668 PRINT#4,"[221] [221] [221] [221] [221]"; 670 PRINT#4," [221] [221] [221]" 672 PRINT#4,"[221] [221] [221] [221] [221]"; 674 PRINT#4," [221] [221] [221]" 676 PRINT#4,"[221] [221] [221] [221] [221]"; 678 PRINT#4," [221] [221] [221]" 682 PRINT#4,"[221] [221] [221] [221] [221]"; 684 PRINT#4," [221] [221] [221]" 686 IFJ>0THENPRINT#4,""; 688 IFJ=6THEN696 690 PRINT#4,"[171][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][195][195][195][195][195][195][219]"; 692 PRINT#4,"[195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][195][195][195][195][195][195][179]" 694 NEXT J 696 PRINT#4,"[202][195][195][195][195][195][195][195][195][195][195][177][195][195][195][195][195][195][195][195][195][195][177][195][195][195][195][195][195][195][195][195][195][177][195][195][195][195][195][195][195][195][195][195][177]"; 698 PRINT#4,"[195][195][195][195][195][195][195][195][195][195][177][195][195][195][195][195][195][195][195][195][195][177][195][195][195][195][195][195][195][195][195][195][203]" 700 PRINT#4,CHR$(14) 702 PRINT#4," M E M O S " 704 PRINT#4,CHR$(15) 706 OPEN15,8,15:OPEN2,8,2,"MEMOS"+M$+",S,R" 708 INPUT#15,E,E$,E1,E2 710 IFETHENCLOSE4:GOTO280 712 FORL=0TO19 714 INPUT#2,N$(L) 716 NEXTL 718 CLOSE2 730 PRINT#4,N$(0);" "; 732 PRINT#4,N$(1) 734 PRINT#4,N$(2);" "; 736 PRINT#4,N$(3) 738 PRINT#4,N$(4);" "; 740 PRINT#4,N$(5) 742 PRINT#4,N$(6);" "; 744 PRINT#4,N$(7) 746 PRINT#4,N$(8);" "; 748 PRINT#4,N$(9) 750 PRINT#4,N$(10);" "; 752 PRINT#4,N$(11) 754 PRINT#4,N$(12);" "; 756 PRINT#4,N$(13) 758 PRINT#4,N$(14);" "; 760 PRINT#4,N$(15) 762 PRINT#4,N$(16);" "; 764 PRINT#4,N$(17) 766 PRINT#4,N$(18);" "; 768 PRINT#4,N$(19) 770 CLOSE4,4:GOTO300 800 REM WARNING TONE ROUTINES 805 REM BELL 810 POKE54296,15:POKE54277,16:POKE54278,247 815 POKE54276,17:POKE54273,25:POKE54272,10 820 FORWT=1TO300:NEXT:POKE54276,0:RETURN 850 REM BUZZER 855 POKE54296,15:POKE54277,45:POKE54278,165 860 POKE54276,33:POKE54273,6:POKE54272,5 865 FORWT=1TO150:NEXT:POKE54276,16:RETURN 900 PRINT"[147]LOAD"CHR$(34)P$CHR$(34)",8" 905 PRINT"RUN" 910 POKE198,3:POKE631,19:POKE632,13:POKE633,13 915 NEW 920 END 950 REM CHECK FOR PRINTER ROUTINE 952 OPEN4,4:PRINT#4,CHR$(0) 954 IFST=0THENCLOSE4:RETURN 956 PRINT"[144] PRINTER NOT ON LINE !!!":CLOSE4:GOSUB850 958 PRINT" PRESS [ + ] TO TRY AGAIN" 960 PRINT" PRESS [ _ ] TO ESCAPE PRINT" 962 GETKEY$:IFKEY$=""THEN962 964 IFKEY$=CHR$(43)THENPRINT"[145][145][145][145]":GOTO950 966 IFKEY$=CHR$(95)THEN300 968 GOTO962 1000 DATA JANUARY,2,31,FEBRUARY,5,28,MARCH,5,31,APRIL,1,30,MAY,3,31,JUNE,6,30 1010 DATA JULY,1,31,AUGUST,4,31,SEPTEMBER,7,30,OCTOBER,2,31 1020 DATA NOVEMBER,5,30,DECEMBER,7,31 1030 DATA ,,